/* Copyright (c) 2025 Beijing Semidrive Technology Corporation
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/** *****************************************************************************************************
 * \file     Icu_Fault.h                                                                                *
 * \brief    AUTOSAR 4.3.1 MCAL Icu fault injection file                                                *
 *                                                                                                      *
 * <table>                                                                                              *
 * <tr><th>Date           <th>Version                                                                   *
 * <tr><td>2023/09/11     <td>1.0.0                                                                     *
 * </table>                                                                                             *
 *******************************************************************************************************/
#ifndef ICU_FAULT_H
#define ICU_FAULT_H

#ifdef __cplusplus
extern "C" {
#endif

#ifndef ICU_FAULT_INJECTION

/* fifo err injection in single capture mode */
#define IcuHookBegin_Icu_SingleCptFifoErr()
#define IcuHookEnd_Icu_SingleCptFifoErr()


/* fifo err injection in mukti capture mode */
#define IcuHookBegin_Icu_MultiCptFifoErr()
#define IcuHookEnd_Icu_MultiCptFifoErr()

/* timer module err injection in filter config */
#define IcuHookBegin_Icu_TimerModuleFilter()
#define IcuHookEnd_Icu_TimerModuleFilter()

/* timer module err injection in config */
#define IcuHookBegin_Icu_ConfigTimeout()
#define IcuHookEnd_Icu_ConfigTimeout()

/* timer module err injection in config timeout */
#define IcuHookBegin_Icu_ClkConfigTimeout()
#define IcuHookEnd_Icu_ClkConfigTimeout()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_ChanenlNullInit()
#define IcuHookEnd_Icu_ChanenlNullInit()

/* channel null err injection in deinit phase */
#define IcuHookBegin_Icu_ChanenlNullDeInit()
#define IcuHookEnd_Icu_ChanenlNullDeInit()

/* channel null err injection in set activation */
#define IcuHookBegin_Icu_ChanenlNullSetActivation()
#define IcuHookEnd_Icu_ChanenlNullSetActivation()

/* timer module err injection in clear interrupt */
#define IcuHookBegin_Icu_TimerModuleClrInt()
#define IcuHookEnd_Icu_TimerModuleClrInt()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleTurnOn()
#define IcuHookEnd_Icu_TimerModuleTurnOn()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleTurnOff()
#define IcuHookEnd_Icu_TimerModuleTurnOff()

/* channel null err injection in start measurement phase */
#define IcuHookBegin_Icu_ChanenlNullStartMear()
#define IcuHookEnd_Icu_ChanenlNullStartMear()

/* channel null err injection in start measurement phase */
#define IcuHookBegin_Icu_ChanenlNullStopMear()
#define IcuHookEnd_Icu_ChanenlNullStopMear()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleGetDuty()
#define IcuHookEnd_Icu_TimerModuleGetDuty()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleFreeDma()
#define IcuHookEnd_Icu_TimerModuleFreeDma()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_ChanenlNullMulInit()
#define IcuHookEnd_Icu_ChanenlNullMulInit()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_ChanenlNullMulDeInit()
#define IcuHookEnd_Icu_ChanenlNullMulDeInit()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_ChanenlNullMulTurnOn()
#define IcuHookEnd_Icu_ChanenlNullMulTurnOn()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_ChanenlNullMulTurnOff()
#define IcuHookEnd_Icu_ChanenlNullMulTurnOff()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleMulStartMear()
#define IcuHookEnd_Icu_TimerModuleMulStartMear()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleMulStopMear()
#define IcuHookEnd_Icu_TimerModuleMulStopMear()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_TimerModuleMulGetDuty()
#define IcuHookEnd_Icu_TimerModuleMulGetDuty()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_Xtrg_ChanenlNullInit()
#define IcuHookEnd_Icu_Xtrg_ChanenlNullInit()

/* channel null err injection in init phase */
#define IcuHookBegin_Icu_Xtrg_ChanenlNullDeInit()
#define IcuHookEnd_Icu_Xtrg_ChanenlNullDeInit()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_Xtrg_TimerModuleTurnOn()
#define IcuHookEnd_Icu_Xtrg_TimerModuleTurnOn()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_Xtrg_TimerModuleTurnOff()
#define IcuHookEnd_Icu_Xtrg_TimerModuleTurnOff()

/* channel null err injection in set activation */
#define IcuHookBegin_Icu_Xtrg_ChanenlNullSetActivation()
#define IcuHookEnd_Icu_Xtrg_ChanenlNullSetActivation()

/* channel null err injection in start measurement phase */
#define IcuHookBegin_Icu_Xtrg_ChanenlNullStartMear()
#define IcuHookEnd_Icu_Xtrg_ChanenlNullStartMear()

/* channel null err injection in start measurement phase */
#define IcuHookBegin_Icu_Xtrg_ChanenlNullStopMear()
#define IcuHookEnd_Icu_Xtrg_ChanenlNullStopMear()

/* timer module err injection in turn on phase */
#define IcuHookBegin_Icu_Xtrg_TimerModuleGetDuty()
#define IcuHookEnd_Icu_Xtrg_TimerModuleGetDuty()

#else
#include "Icu_UserFault.h"
#endif


#ifdef __cplusplus
}
#endif

#endif /* ICU_FAULT_H */
/* End of file */
